package cn.stazxr.deepseekchat.utils;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import io.swagger.v3.core.util.Json;
import lombok.extern.slf4j.Slf4j;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * Return Json Utils
 *
 * @author talentestors
 * @version 1.0
 * @since 2025.3.16
 **/
@SuppressWarnings("all")
@Slf4j
public final class ReturnJsonUtils {

	public static JsonNode getJsonNode(String json) {
		JsonNode jsonNode = null;
		try {
			jsonNode = Json.mapper().readTree(json);
		} catch (JsonProcessingException e) {
			log.error(e.getMessage());
		}
		return jsonNode;
	}

	public static List<Map<String, Object>> jsonNode2Map(JsonNode jsonNode) {
		List list = new ArrayList();
		if (jsonNode.isArray()) {
			for (JsonNode node : jsonNode) {
				Map data = Json.mapper().convertValue(node, Map.class);
				list.add(data);
			}
		} else if (jsonNode.isObject()) {
			Map data = Json.mapper().convertValue(jsonNode, Map.class);
			list.add(data);
		} else {
			log.error("jsonNode2Map error: " + jsonNode.toString());
		}
		return list;
	}

	public static List<Map<String, Object>> str2Map(String str) {
		JsonNode jsonNode = getJsonNode(str);
		return jsonNode2Map(jsonNode);
	}

}
